Plan Operator Specialization using Reflective Compiler Techniques

نویسندگان

  • Carl-Philip Hänsch
  • Thomas Kissinger
  • Dirk Habich
  • Wolfgang Lehner
چکیده

Query-specific code generation has become a well-established approach to speed up query execution. However, this approach has two major drawbacks: (1) code generators are in general hard to write and maintain, (2) code generators lack the ability to deal with custom operators. To overcome these limitations, we suggest to return to the traditional execution approach with precompiled generic operators which are parametrized and composed to query plans at query compile time. Nevertheless, to optimize such plan operators and speed up their execution, we introduce a novel specialization approach using reflective compiler techniques. Employing code annotations and an additional compiler pass, we are able to track and replace low-level load instructions that refer to operator parameters which remain constant during execution time. By dissolving such up-to-now unknown constant variables, the compiler can further optimize the code and is able to determine query-specific optimized operators out of generic operator code. In our evaluation, we show that our approach speeds up the execution of the traditional generic operator approach in terms of execution time without facing the drawbacks of code generators.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Runtime Code Generation for Bytecode Specialization of Reflective Java Programs

Reflection in Java is a key technology for dealing with the continuously increasing demand for flexible and reusable software components. Unfortunately, however, a reflective method invocation or field access is considerably slower than a corresponding base-level access. Several researchers have noted that partial evaluation is useful for unfolding meta-level computation into the base-level, an...

متن کامل

Fragmental Specialization

Traditional offline program specialization relies on staging of a computation into two levels, static and dynamic. We present a generalization thereof where the static input data of one level is split up in a potentially unknown number of separate fragments. These fragments arrive in an unspecified order and are specialized as they arrive. Potential applications of the technique include separat...

متن کامل

Abstract Multiple Specialization and Its Application to Program Parallelization

MÚLTIPLE SPECIALIZATION AND ITS APPLICATION TO PROGRAM PARALLELIZATION G E R M Á N PUEBLA AND MANUEL H E R M E N E G I L D O |> Program specialization optimizes programs for known valúes of the input. It is often the case that the set of possible input valúes is unknown, or this set is infinite. However, a form of specialization can still be performed in such cases by means of abstract interpre...

متن کامل

Run-Time Program Specialization in Java Bytecode

Run-time specialization (RTS) is a technique that efficiently generates specialized programs with respect to runtime values. For efficiently generating specialized programs, RTS constructs compiled native code fragments called templates at compile-time, and generates a specialized program by merely copying the templates. The generated programs are, on the other hand, less efficient, since the t...

متن کامل

Hardware-Sensitive Scan Operator Variants for Compiled Selection Pipelines

The ever-increasing demand for performance on huge data sets forces database systems to tweak the last bit of performance out of their operators. Especially query compiled plans allow for several tuning opportunities that can be applied depending on the query plan and the underlying data. Apart from classical query optimization opportunities, it includes to tune the code using code optimization...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015